Verifying Whiley Programs with Boogie
نویسندگان
چکیده
Abstract The quest to develop increasingly sophisticated verification systems continues unabated. Tools such as Dafny, Spec#, ESC/Java, SPARK Ada and Whiley attempt seamlessly integrate specification into a programming language, in similar way type checking. A common integration approach is generate conditions that are handed off an automated theorem prover. This provides nice separation of concerns allows different provers be used interchangeably. However, generating still difficult undertaking the use more “high-level” intermediate languages has become commonplace. In particular, Boogie widely understood language. difficulty potential for impedance mismatch between source language this paper, we explore verifying programs Whiley. noteworthy because (amongst other things) rich system with considerable mismatch. We provide comprehensive account translating which demonstrates it possible model most aspects Key challenges posed by included: encoding Whiley’s expressive support flow typing generics; implicit assumption expressions specifications well defined; ability invoke methods from within expressions; return multiple values function or method; presence unrestricted lambda functions; limited syntax framing. demonstrate resulting tool can verify significantly than native verifier was custom-built verification. Furthermore, our work evidence (for part) sufficiently general act wide range languages.
منابع مشابه
Verifying Eiffel Programs with Boogie
Static program verifiers such as Spec#, Dafny, jStar, and VeriFast define the state of the art in automated functional verification techniques. The next open challenges are to make verification tools usable even by programmers not fluent in formal techniques. This paper presents AutoProof, a verification tool that translates Eiffel programs to Boogie and uses the Boogie verifier to prove them. ...
متن کاملReflections on Verifying Software with Whiley
An ongoing challenge for computer science is the development of a tool which automatically verifies that programs meet their specifications, and are free from runtime errors such as divide-by-zero, array out-of-bounds and null dereferences. Several impressive systems have been developed to this end, such as ESC/Java and Spec#, which build on existing programming languages (e.g. Java, C#). Unfor...
متن کاملBound Analysis for Whiley Programs
The Whiley compiler can generate naive C code, but the code is inefficient because it uses infinite integers and dynamic array sizes. Our project goal is to build up a compiler that can translate Whiley programs into efficient OpenCL code with fixed-size integer types and fixed-size arrays, for parallel execution on GPUs. This paper presents an abstract interpretation-based bound inference appr...
متن کاملDesigning a verifying compiler: Lessons learned from developing Whiley
Article history: Received 30 April 2014 Received in revised form 27 September 2015 Accepted 29 September 2015 Available online xxxx
متن کاملVerifying Programs with Unreliable Channels
We consider the verification of a particular class of infinite-state systems, namely systems consisting of finite-state processes that communicate via unbounded lossy FIFO channels. This class is able to model, e.g., link protocols such as the Alternating Bit Protocol and HDLC. For this class of systems, we show that several interesting verification problems are decidable by giving algorithms f...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Journal of Automated Reasoning
سال: 2022
ISSN: ['0168-7433', '1573-0670']
DOI: https://doi.org/10.1007/s10817-022-09619-1